{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 试画图说明极线几何关系，并指出极点、极线所在，解释极线约束。 当只有一个相机时，对应像平面上的一点，无法确定其在空间中的深度信息，用两个相 机，便可以根据两个像平面的对应关系，可以得到特征点在空间中的深度信息，这就是双目 视觉。 \n",
    " \n",
    "基线是指两个相机坐标原点的连线(O_l,O_r)，极点是指像 平面与基线的交点(e_l,e_r)，空间中的一点与两个相机的坐标原点所构成的平面为极平面 (O_lO_rP)，极线是以空间点与相机原点的交点和极点为端点的线段(P_le_l,P_re_r)。 极线约束：两极线上点的对应关系。可以理解为左像平面中极线上每个像素点在右像平 面上的同名点一定右像平面对应的极线上，在做特征点匹配时，可以将原来的二维搜索范围 缩小到一维，提高匹配效率。 \n",
    " \n",
    "2. 结合本质矩阵的定义，说明本质矩阵的意义，同时思考与上一周中平面点对应透视矩阵 的区别。\n",
    "根据相机坐标系与图像坐标系的转换关系(2)，以及左右相机坐标系之间的转换关系(3)， 可以得到 R,t 为未知量的等式(4)。在此基础上再分别对等式两边叉积 t(5)，再点积𝑝𝑝𝑟𝑟 �，由于t ×𝑝𝑝 �𝑟𝑟⊥𝑝𝑝 �𝑟𝑟。令本质矩阵E=[𝑡𝑡]×𝑅𝑅。  \n",
    "本质矩阵 E 可以将空间中的一点在左相机和右相机中的成像关联起来。我们可以根据 多个空间点及其对应的左右像平面坐标求出本质矩阵 E，在此基础上求出 R 和 t，得到两个 相机之间的姿态和位置关系。 根据本质矩阵 E 求解 R 和 t，将 E 用三个行向量表示，对式(7)进行变换，得到式(8)，通 过 SIFT 等算法找出左右像平面上九个对应的特征点，便可以根据这个九个特征点的坐标对 应关系，求出本质矩阵 E 中九个元素的值。然后根据奇异值分解求出 R 和 t。这里可以得到 四个解，根据像平面与空间点在基线同一方，可以得到唯一解。 \n",
    " 透视变换是从某个投射中心将源图像平面上的信息投射到另一图像平面上，透视矩阵的 作用是实现从源平面到新图像平面的转换。而本质矩阵的作用是将空间点在两个投影平面上 的投影点对应起来。(个人理解：透视变换目标成像平面包含原成像平面中的所有信息，而 双目视觉中两个坐标平面的信息是互补的？) \n",
    " \n",
    "3. 说明三维重构的步骤，并指出输入及输出要求。 三维重构一共分五步进行。 \n",
    "1.左右相机图像特征点提取与匹配，可以通过 sift 直接进行特征点的提取与匹配，也可 以通过 Harris 等特征点检测算法提取特征点再用光流匹配/块匹配/立体矫正+平行匹配。输 入：两张图片；输出：两张图片匹配的特征点坐标。 2.计算视差；输入：两张图片，以及匹配的特征点；输出：每个像素点的视差值。 3.计算世界坐标，构成点云数据；输入：图片以及每个像素点的是差值；输出：每个像 素点的世界坐标。 4.三角剖分； 5.三维重构。 \n",
    " \n",
    "4. 说明特征匹配的步骤，进一步说明基于 k-d 树的特征匹配方法的思路。 \n",
    "在特征匹配前，首先要通过 sift、harris等方法进行特征点提取，得到特征点描述向量，\n",
    "根据特征点描述子对两张图片上的特征点进行匹配和滤波，得到匹配结果。 k-d 树特征匹配分两步进行： 1. k-d 树建立： 统计所有样本点在每一维度的方差，选择方差最大的维度作为分裂域，将所有样本按照 分裂域维度进行排序，正中间的数据点作为分裂结点。重复上述步骤直至叶子节点。 2.k-d 树最近邻查询算法： (1). 首先按照二叉搜索的方式找到与搜索在同一子空间的最近邻叶子节点； (2). 根据搜索路径回溯，判断搜索路径上的节点及其子节点空间是否有比最近邻叶子节 点更近的数据点，如果有，则跳到其他子节点空间继续搜索； (3). 重复上述步骤直至搜索路径为空。 \n",
    " \n",
    "5. 说明 RANSAC 方法的基本思想及实施步骤。 \n",
    "RANSAC 方法通过随机选取一组样本子集进行参数估计，然后计算估计的参数在样本中 的拟合能力，重复固定次数，选取拟合能力最强的参数。 具体步骤如下： 1. 从样本中选择一组随机子集作为局内点，用一个模型去适应假设的局内点； 2.用 1 中得到的模型去测试其余的数据，如果某个点适用于 1 中估计的模型(满足 3σ 原 则)，认为它也是局内点； 3.如果对于估计的模型来说，有足够多的局内点，则认为该模型合理； 4.用所有假设的局内点重新估计模型； 5.通过估计局内点和模型的错误率来评估模型。 与最小二乘相比，RANSAC 在数据噪声较大的情况下，会取得更好的结果。 "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
